<?php
namespace model;
require_once ('src/Model/UserModel.php');
require_once ('src/Model/EncryptionModel.php');
require_once ('src/Model/SessionLoginModel.php');

class LoginModel {
    public $m_isUserLogedIn = false;
    public $m_userWantsToBeRemebered = false;
    public $m_usernameIsMissing = null;
    public $m_passwordIsMissing = null;
    public $m_hasValidUsername;
    public $m_hasValidPassword;

    public $encryptionModel;
    public $sessionLoginModel;
    public $userModel;


    /**
    * __constructor
    */
    public function __construct()     {
        $this->encryptionModel = new \model\EncryptionModel();
        $this->sessionLoginModel = new \model\SessionLoginModel();
        $this->userModel = new \model\UserModel();
    }


    /**
    * @param array $userDataArray
    *
    * här sätter vi rätt systemstatus och kontrollerar anändaruppgifterna
    */
	public function setState($userDataArray)	{

        $this->userModel->checkUserCredentials($userDataArray[0], $userDataArray[1]); //kolla gilltigt användarnamn/lösen, skickar med usernamne/password
        $this->m_hasValidUsername = $this->userModel->hasValidUsername();		 //kommer retunera true om rätt usernamn är satt
        $this->m_hasValidPassword = $this->userModel->hasValidPassword();		 //kommer retunera true om rätt password är satt
        $validUsername = $this->userModel->returnValidUsername();		         //kommer retunera username
        $validPassword = $this->userModel->returnValidPassword();		         //kommer retunera password

        if ($this->m_hasValidUsername == true && $this->m_hasValidPassword == true) {
			$this->sessionLoginModel->setSessionCookies($validUsername, $validPassword);
            $this->m_isUserLogedIn = true;  //om det är rätt username och password så sätts $this->m_isUserLogedIn till true då är man inloggad
        }

        if ($userDataArray[0] == "") {
             $this->m_usernameIsMissing = true;
        } else {
             $this->m_usernameIsMissing = false;
        }

        if ($userDataArray[1] == "") {
            $this->m_passwordIsMissing = true;
        } else {
             $this->m_passwordIsMissing = false;
        }

        if ($userDataArray[2] == "1") {
                $this->m_userWantsToBeRemebered = true;
        }

	}


    /**
    * denna körs om användaren har loggat ut
    */
    public function setUserHasLogedOut() {
            $this->m_isUserLogedIn = false;
            $this->m_userWantsToBeRemebered = false;
    }


}

